#ifndef INTERFACES_H
#define INTERFACES_H

#include <QtPlugin>
#include "whalepluginstarter.h"

class QString;
class QVariant;
class WhaleTabBase;

// this is inherited by tab plugins
class TabInterface {
    public:
        virtual ~TabInterface() {} // keep compilers happy (see: qt plug & paint example)
        virtual WhaleTabBase * generateTab() = 0; // generate a new tab
        virtual WhalePluginStarter * generateStarter() = 0; // return new tab starter
        virtual QVariant constructors( WhaleTabBase * tab ) = 0; // return values describing tab
        virtual WhaleTabBase * restoreTab( QVariant revokers ) = 0; // restore a new tab based on some values
        virtual QString name() = 0;
};

Q_DECLARE_INTERFACE( TabInterface, "com.socialwhale.plugins.TabInterface/1.3" )

#endif
